<?php


namespace app\common\util;


class Str
{
    /**
     * 获取随机字符串
     * @param int $length 长度
     * @param bool $num 是否要数字
     * @param bool $capital 是否要大写字母
     * @param bool $minuscule 是否要小写字母
     * @return string
     */
    public static function getRandomString(int $length, bool $num = true, bool $capital = true, bool $minuscule = true): string
    {
        $strArr = [];
        $arrLength = -1;
        $str = '';
        if ($num === true) {
            $strArr = array_merge($strArr, ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]);
            $arrLength += 10;
        }
        if ($capital === true) {
            $strArr = array_merge($strArr, ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]);
            $arrLength += 26;
        }
        if ($minuscule === true) {
            $strArr = array_merge($strArr, ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]);
            $arrLength += 26;
        }
        for ($i = 0; $i < $length; $i++) {
            $str .= $strArr[rand(0, $arrLength)];
        }
        return $str;
    }


}